//arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
/* 
参数
callback
为数组中每个元素执行的函数，该函数接收一至三个参数：
currentValue
数组中正在处理的当前元素。
index 可选
数组中正在处理的当前元素的索引。
array 可选
forEach() 方法正在操作的数组。
thisArg 可选
可选参数。当执行回调函数 callback 时，用作 this 的值。 */
const array1 = ['a', 'b', 'c'];
sum = 0;

array1.forEach(function(value, index, array) {
  console.log('每个数组元素' + value);
  console.log('每个数组元素的索引号' + index);
  console.log('数组本身' + array);
  sum += value //字符串拼接
});

console.log(sum);



//var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
/* 
参数！！！
callback
用来测试数组的每个元素的函数。返回 true 表示该元素通过测试，保留该元素，false 则不保留。它接受以下三个参数：
element
数组中当前正在处理的元素。
index可选
正在处理的元素在数组中的索引。
array可选
调用了 filter 的数组本身。
thisArg可选
执行 callback 时，用于 this 的值。
返回值！！！
一个新的、由通过测试的元素组成的数组，如果没有任何数组元素通过测试，则返回空数组。
*/

let arr1 = [12, 5, 8, 130, 44]
const arr2 = arr1.filter(function(value, index) {
  return value > 10
});
console.log(arr2);



// arr.some(callback(element[, index[, array]])[, thisArg])

/* 
参数###
callback
用来测试每个元素的函数，接受三个参数：
element
数组中正在处理的元素。
index 可选
数组中正在处理的元素的索引值。
array可选
some()被调用的数组。
thisArg可选
执行 callback 时使用的 this 值。
返回值###
数组中有至少一个元素通过回调函数的测试就会返回true；所有元素都没有通过回调函数的测试返回值才会为false。*/
let flag = arr1.some(function(value, index) {
  return value > 20
})
console.log(flag);

let flag1 = ['red', 'blue', 'pink'].some(x => x = 'red')
console.log(flag1);